# DnlkkScript

## Язык 3. Подмножество JavaScript
Точнее простой динамически типизируемый интерпретируемый язык, синтаксисом 
напоминающий JavaScript (т.к. семантика JavaScript в некоторых моментах весьма 
оригинальна и повторить ее сложно). Интерпретатор может быть выполнен как 
интепретатор по AST-дереву, так и в виде виртуальной машины, обрабатывающий 
типизированные значения (соответствеенно должен быть компилятор в ассемлер такой 
машины).
Требуемая функциональность языка представлена в таблице ниже:

| Функциональность |	Поддерживается обязательно	| Поддерживается по желанию/возможности
| :-: |  :-: |  :-: | 
| Типы данных |	целые и вещественные числа, строки, Null, Undefined, массивы, хеши (обращение через точку)	/\* Тип любого выражения вычисляется при интерпритации \*/	| Функции, как тип данных |
| Операции |	+, –, \*, /, div, mod, >, <, >=, <=, ==, != /* семантика операций может отличаться в зависимости от типов аргументов */	| |
| Операторы |	if [else], for, while, break, continue	| |
| Функции |	передача параметров по значению	| передача параметров по ссылке /* подумать, как реализовать, могут быть сильно разные варианты */ |
| Системные функции |	некоторый набор системных функций (в том числе ввода/вывода)	| |
